package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.servcie.GmallService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
public class GmallController {
    @Autowired
    GmallService gmallService;
//    按品牌交易额 展示柱状图  当日
    @RequestMapping("/findBase")
    public Object findBase(String newDate){
//  第二个难点  如何返回大屏所有数据
//        1.获得数据库的数据 List<Map> [{}]
        List<Map> list = gmallService.findBase(newDate);
//        2.返回大屏所需要的数据
//        第一层：对象 {}
        JSONObject jsonObject = new JSONObject();
//        第二层：status msg data
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        第三层 ：对象{}
        JSONObject dataObject = new JSONObject();
//        第四层 ：x轴 categories 需要[]  y轴 series 需要[]
//         4.1层   x轴 categories 需要[]
        JSONArray xArray = new JSONArray();
//        需要的各个品牌的名称  map集合 get(key)
        for (Map map : list) {
            xArray.add(map.get("name")) ;
        }
        dataObject.put("categories",xArray);
//        4.2层 y轴 series 需要[]
        JSONArray yArray = new JSONArray();
//       4.2.1 [] 需要 对象 {}
        JSONObject yObject = new JSONObject();
//        4.2.2 对象{} 需要 name data
        yObject.put("name","品牌");
//        4.2.3  data数据需要 []
        JSONArray dataArray = new JSONArray();
//        4.2.4  放值
        for (Map map : list) {
            dataArray.add(map.get("total"));
        }
        yObject.put("data",dataArray);
        yArray.add(yObject);
        dataObject.put("series",yArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    }

//    轮播图表格
    @RequestMapping("/findSpu")
    public Object  findSpu (String newDate){
//        1.拿到数据库中的数据
        List<Map> list = gmallService.findSpu(newDate);
//        2.返回大屏所需要的数据
//        第一层 需要  对象{}
        JSONObject jsonObject = new JSONObject();
//          第二层：status msg data
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        第三层 对象 {}
        JSONObject dataObject = new JSONObject();
//        第四层 columns 数组  rows []
        JSONArray columnsArray = new JSONArray();
//        4.1层  columns 数组 需要表头  有几个列 就有几个对象
        JSONObject Object1 = new JSONObject();
        Object1.put("name","品牌");
        Object1.put("id","module");
        columnsArray.add(Object1);

        JSONObject Object2 = new JSONObject();
        Object2.put("name","性别");
        Object2.put("id","business");
        columnsArray.add(Object2);

        JSONObject Object3 = new JSONObject();
        Object3.put("name","总交易额");
        Object3.put("id","value");
        columnsArray.add(Object3);
//     具体的数据
        JSONArray rowsArray = new JSONArray();
        for (Map map : list) {
            JSONObject rowObject = new JSONObject();
            rowObject.put("module",map.get("name"));
            rowObject.put("business",map.get("genderGroup"));
            rowObject.put("value",map.get("total"));

            rowsArray.add(rowObject);
        }

        dataObject.put("columns",columnsArray);
        dataObject.put("rows",rowsArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    }

}
